<!DOCTYPE html>
<!--
 Copyright (c) 2010 - 2019 Profactor GmbH, TU Wien ACIN, fortiss GmbH
               2018 - 2019 Andrea Zoitl
               2019 Johannes Kepler University Linz
               2019 Jan Holzweber
                 
 This program and the accompanying materials are made available under the
 terms of the Eclipse Public License 2.0 which is available at
 http://www.eclipse.org/legal/epl-2.0.

 SPDX-License-Identifier: EPL-2.0
 
 Contributors:
   Gerhard Ebenhofer, Thomas Strasser, Monika Wenger, Alois Zoitl, 
   Gerd Kainz, Carolyn Oates, Jose Cabral 
     - initial API and implementation and/or initial documentation
   Andrea Zoitl - cleaning up tutorials for 1.10 release, updated ToC
   Bianca Wiesmayr - text corrections and updates
   Jan Holzweber - added tutorial Step 7
-->

<html lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>Step 0 - 4diac&nbsp;IDE - Overview</title>
	<link rel="stylesheet" type="text/css" href="../help.css">
</head>
<body>

<!--********************************************************************************************-->

<h1 id="topOfPage">Step 0 - 4diac&nbsp;IDE Overview</h1>

<p>This page is part of a guide that gives a walk-through over the major 4diac&nbsp;IDE features.</p>

    <ol start="0">
      <li>4diac IDE Overview (YOU ARE HERE!)</li>
      <li><a href="../../html/4diacIDE/use4diacLocally.html">Use 4diac Locally (Blinking tutorial)</a></li>
      <li><a href="../../html/4diacIDE/distribute4diac.html">Distribute 4diac Applications</a></li>
      <li><a href="../../html/4diacIDE/use4diacRemotely.html">Deploy Applications Remotely</a></li>
      <li><a href="../../html/4diacIDE/createOwnTypes.html">Create Your own Function Block Types</a></li>
      <li><a href="../../html/4diacIDE/otherUseful.html">Other Basic Features</a></li>
      <li><a href="../../html/4diacIDE/advancedFeatures.html">Advanced Features</a></li>
      <li><a href="../../html/4diacIDE/dynamicTypeLoader.html">Deploying new FBs with the Dynamic Type Loader</a></li>
    </ol>

<p>An overview is presented in this step 0 - about elements, perspectives and properties of 4diac&nbsp;IDE that you need to know about to use it smoothly.</p>

<!--********************************************************************************************-->

<h2 id="startingUp">Starting up 4diac&nbsp;IDE</h2>

<p>Open 4diac&nbsp;IDE to start the tutorial. 
You will be prompted to select or create your workspace. 
For this tutorial, we name our workspace "Tutorial".
A workspace is a folder on your computer that stores one or more 4diac&nbsp;IDE projects.</p>

<p><img src="../../html/4diacIDE/img/Step0/workspaceSelection.png" alt="workspace selection"/></p>

<p>After you created a workspace, 4diac&nbsp;IDE presents its welcome screen. 
Here you can get an overview about 4diac&nbsp;IDE, create a new project, import an existing project or read more about the chapters of the tutorial.</p>

<p><img src="../../html/4diacIDE/img/Step0/welcomeScreen.png" alt="welcome screen of 4diac&nbsp;IDE"/></p>

<p>At first it's best to deselect the checkbox at the bottom-right corner so you can start up 4diac&nbsp;IDE faster the next time.
You can open the welcome screen later again via Help &rarr; Welcome.</p>

<p>Next you click the <i>workbench</i> button. This brings you to the main screen of 4diac&nbsp;IDE.</p>

<!--********************************************************************************************-->

<h2 id="elements">4diac&nbsp;IDE Elements</h2>
<p>Since 4diac is compliant to the IEC&nbsp;61499 standard, 4diac&nbsp;IDE provides the standard's elements for work (you can check <a href="../../html/before4DIAC/iec61499.html#IEC61499" target="_blank">here</a> to revise):</p>
<ul>
	<li><img src="../../html/4diacIDE/img/system.png" alt="System" class="inlineImg" /> <span class="inlineTitle">System</span>: It contains the <span class="view4diac">System Configuration</span> and its corresponding <span class="element61499">Applications</span>.</li>
	<li><img src="../../html/4diacIDE/img/app16.png" alt="Application" class="inlineImg"/> <span class="inlineTitle">Application</span>: It contains the desired application in terms of a FB network.</li>
	<li><img src="../../html/4diacIDE/img/device16.png" alt="Device" class="inlineImg"/> <span class="inlineTitle">Device</span>: It represents a hardware device such as a programmable logic controller (PLC) or a microcontroller.</li>
	<li><img src="../../html/4diacIDE/img/resource16.png" alt="Resource" class="inlineImg"/> <span class="inlineTitle">Resource</span>: It is responsible for the execution of the control logic within its own execution context.</li>
	<li><span class="inlineTitle">Function blocks (FB)</span>:
	<ul>
		<li><img src="../../html/4diacIDE/img/basicfb_16.png" alt="BFB" class="inlineImg"/> <span class="inlineTitle">Basic FB (BFB)</span>: It uses an execution control chart (ECC) to control event execution. Algorithms are associated with the different states inside an ECC.</li>
		<li><img src="../../html/4diacIDE/img/compositefb_16.png" alt="CFB" class="inlineImg"/> <span class="inlineTitle">Composite FB (CFB)</span>: It contains a FB network of existing FBs. Its FB interface passes events and data on to the FBs within the CFB, which in turn pass events and data among themselves and out to the CFB's normal output interface.</li>
		<li><img src="../../html/4diacIDE/img/sifb_16.png" alt="SIFB" class="inlineImg"/> <span class="inlineTitle">Service interface FB (SIFB)</span>: It is usually used for something that cannot be done within the IEC&nbsp;61499 standard such as communication with devices or network segments. It helps to first understand basic and composite FBs. SIFBs are then used to realize only what cannot be done using a BFB/CFB.</li></ul>
	</li>
	<li><img src="../../html/4diacIDE/img/adapter.png" alt="Adapter" class="inlineImg"/> <span class="element61499">Adapter</span>: It combines a set of input/output events and data to one connection. On the one hand it simplifies the IEC&nbsp;61499 <span class="element61499">Application</span> and on the other hand it better decouples <span class="element61499">Application</span> parts providing an interface concept, which allows adopting the polymorphic concept of object-oriented programming</li>
</ul>

<!--********************************************************************************************-->

<h2 id="perspectives">4diac&nbsp;IDE Perspectives</h2>

<p>The 4diac&nbsp;IDE provides three perspectives, which can be added via the <img src="../../html/4diacIDE/img/perspective/new_persp.gif" alt="add perspective" class="inlineImg"/> button in the upper-right corner:</p>
<img src="../../html/4diacIDE/img/Step0/perspectiveSelection.png" alt="perspective selection"/>
<ol>
	<li>The <span class="inlineTitle"> <img src="../../html/4diacIDE/img/system.png" alt="System Perspective Button" class="inlineImg"/> System </span>perspective is used to configure everything regarding your system. It includes:
		<ul>
		<li><span class="inlineTitle">System Manager</span>, which allows creating and editing your System and Applications. 
		<li><span class="inlineTitle">System Configuration</span>, which allows managing <span class="element61499">Devices</span>, <span class="element61499">Resources</span> and <span class="element61499">Segments</span> according to IEC&nbsp;61499. The <span class="element61499">Resources</span> are used for <span class="element61499">Application</span> mapping and insertion of communication function blocks to other <span class="element61499">Devices</span> and <span class="element61499">Resources</span>.
		</li>
		<li><span class="inlineTitle">Applications</span> according to the IEC&nbsp;61499 <span class="element61499">Application</span> Model</li>
		</ul>
	<li><span class="inlineTitle"> <img src="../../html/4diacIDE/img/perspective/deploymentButton.gif" alt="Deployment Perspective Button" class="inlineImg"/> Deployment </span> perspective, where the <span class="element61499">Applications</span> are launched and tested.</li>
	<li><span class="inlineTitle"> <img src="../../html/4diacIDE/img/perspective/debugButton.gif" alt="Debug Perspective Button" class="inlineImg"/> 4diac&nbsp;IDE Debug </span> perspective, where <span class="element61499">Applications</span> can be monitored.</li>
</ol>

<!--********************************************************************************************-->
<h3 id="systemPerspective">System Perspective</h3>
<p>The perspective can be changed in the upper-right corner. The System perspective is reached via the <img src="../../html/4diacIDE/img/system.png" alt="System Perspective Button" class="inlineImg"/> button. The System perspective is divided into the following five areas:</p>
<ol>
	<li><span class="inlineTitle">System Management area</span>, which is used for managing IEC&nbsp;61499 compliant applications and configuring <span class="element61499">Devices</span> and <span class="element61499">Resources</span>. The <span class="IDEelement">Type Navigator</span> is in a tab next to it and lists the available function block library for every <span class="element61499">System</span> as well as the default library.</li> 
	<li><span class="inlineTitle">Editor area</span>, which contains the <span class="IDEelement">Application editor</span> for modeling of control applications, the <span class="IDEelement">System editor</span> for modeling the <span class="element61499">System</span> configuration, and the <span class="IDEelement">Device</span> and <span class="IDEelement">Resource editor</span> for modeling the <span class="element61499">Resource</span> configuration.</li>
	<li><span class="inlineTitle">Outline</span> of <span class="element61499">Applications</span>, <span class="element61499">System</span> configurations, <span class="element61499">Devices</span>, and <span class="element61499">Resources</span></li>
	<li><span class="inlineTitle">Property view</span>, which allows parameterizing function block instances, <span class="element61499">Devices</span>, and <span class="element61499">Resources</span></li>
</ol>
<p><img src="../../html/4diacIDE/img/perspective/systemPerspective.png" alt="System Perspective Button"/></p>

<!--********************************************************************************************-->
<h3 id="deploymentPerspective">Deployment Perspective</h3>
<p>The perspective can be changed in the upper-right corner. The <span class="view4diac">Deployment perspective</span> is reached by the <img src="../../html/4diacIDE/img/perspective/deploymentButton.gif" alt="Deployment Perspective Button" class="inlineImg"/> button. The <span class="view4diac">Deployment Management</span> perspective is divided into the following four areas:</p>
<ol>
	<li>Deployment Selection for selecting a <span class="element61499">System</span>, <span class="element61499">Devices</span> or <span class="element61499">Resources</span> which have to be deployed to controller runtimes</li> 
	<li>Deployment Console for visualizing deployment messages</li>
	<li>Runtime Launcher and button Deploy, which start the deployment process and launch IEC&nbsp;61499 compliant runtimes</li>
	<li>Console output if the runtime is running locally.</li>
</ol>
<p><img src="../../html/4diacIDE/img/perspective/deploymentPerspective.png" alt="Deployment Perspective Button"/></p>

<!--********************************************************************************************-->
<h3 id="debugPerspective">Debug Perspective</h3>
<p>The perspective can be changed in the upper-right corner. The <span class="view4diac">Debug perspective</span> is reached via the <img src="../../html/4diacIDE/img/perspective/debugButton.gif" alt="Debug Perspective Button" class="inlineImg"/> button. The <span class="view4diac">Debug perspective</span> is divided into the following four areas:</p>
<ol>
	<li>System selection, where Systems can be marked for monitoring by right-clicking and choosing <span class="menu4diac">Monitor System.</span></li>
	<li>Application editor, which shows your <span class="element61499">Application</span> and highlights the variables marked for watching.</li> 
	<li>Watches view, which allows watching the current values of the variables you marked for watching.</li>
	<li>Outline of <span class="element61499">Applications</span>, <span class="element61499">System</span> configurations, <span class="element61499">Devices</span>, and <span class="element61499">Resources</span></li>
</ol>
<p><img src="../../html/4diacIDE/img/perspective/debugPerspective.png" alt="Debug Perspective Button"/></p>

<!--********************************************************************************************-->

<h2 id="preferences">4diac&nbsp;IDE Preferences</h2>
<p>Before starting the engineering process of IEC&nbsp;61499 <span class="element61499">Applications</span>, you should set the preferences for the 4diac&nbsp;IDE under <span class="menu4diac">Window &rarr; Preferences &rarr; 4diac&nbsp;IDE</span>.</p> 
<p>Later in <i>Step 1 - Use 4diac&nbsp;IDE locally</i>, you'll learn more about the preferences. For now it is good to know that there are different preference pages, where various parameter for the 4diac&nbsp;IDE can be set, such as colors or connection routers.
   In order to use the Runtime Launcher of the <a href="#deploymentPerspective">deployment perspective</a>, the location of the run-time executable files must be set in the properties. Currently two runtime environments are supported:</p>
<ol>
	<li><a href="http://www.eclipse.org/4diac/en_rte.php" >4diac Forte</a>: <span class="fileLocation">path/forte.exe</span></li>
    <li><a href="https://www.holobloc.com/">Holobloc’s FBRT</a>: <span class="fileLocation">path/fbrt.jar</span></li>
</ol>
 
<img src="../../html/4diacIDE/img/properties/4DIACpreferences.png" alt="4diac&nbsp;IDE Preferences"/>

<!--********************************************************************************************-->

<h2 id="toolbar">Toolbar</h2>
<p>Selecting an element (e.g. <span class="element61499">Systems</span>, <span class="element61499">Devices</span>, <span class="element61499">Resources</span>, <span class="element61499">Applications</span>, <span class="element61499">Function Blocks</span>, ...) and pressing the right mouse button opens the context menu with several menus to manipulate the specific element. 
Additionally, the following items are provided in the permanent toolbar located below the menu:</p>

<ul>
	<li><img src="../../html/4diacIDE/img/properties/hideEvent.png" alt="Hide Events" class="inlineImg"/> and <img src="../../html/4diacIDE/img/properties/hideData.png" alt="Hide Data" class="inlineImg"/> allow hiding either the event or the data connections in the <span class="view4diac">Application Editor</span> Editor</li>
	<li><img src="../../html/4diacIDE/img/properties/icon_print.png" alt="Print Icon" class="inlineImg"/> allows printing the <span class="element61499">Applications</span> and the Automation Hardware</li>
	<li><img src="../../html/4diacIDE/img/properties/icon_save.png" alt="Save Icon" class="inlineImg"/> allows saving changes from the toolbar or the file (Save or Save All is used), alternative access by pressing <span class="inlineCode">Ctrl + S</span></li>
	<li><img src="../../html/4diacIDE/img/properties/undoredo.png" alt="Undo/Redo Icon" class="inlineImg"/> provides undo and/or redo of last changes</li>
	<li><img src="../../html/4diacIDE/img/properties/zoom.png" alt="Zoom Functionality" class="inlineImg"/> provides zoom functionality in the toolbar or the menu entries in the context menu of an editor but also by pressing <span class="button4diac">Ctrl</span> while scrolling the mouse wheel</li>
	<li>Function Block instances or <span class="element61499">Devices</span> can be deleted pressing <span class="button4diac">DEL</span> or selecting the context menu entry Delete.</li>
	<li>Instance names of Function Blocks, <span class="element61499">Resources</span> or <span class="element61499">Devices</span> can be changed. 
	           The instance name field can be edited in the properties view. 
	           When a function block is selected, its properties are displayed at the bottom of the window. 
	           Additionally, a slow double-click also allows editing the name: 
	           First, select the FB by clicking onto it and, then, click on the FB again to edit the instance name.<br/>
	<img src="../../html/4diacIDE/img/properties/instanceName.png" alt="change instance name by double-clicking or property view"/></li> 
</ul>

<!--********************************************************************************************-->

<h1>Where to go from here?</h1>

<p>Now that you got an overview of the major parts of 4diac&nbsp;IDE, you can start using it: </p>

<p><a href="../../html/4diacIDE/use4diacLocally.html">Step 1 - Use 4diac&nbsp;IDE Locally</a></p>

<p>If you want to go back to the Start Here page, we leave you here a fast access:</p>

<p><a href="../../html/startHere/startHere.html">Where to Start</a></p>

<p class="goToTop"><a href="#topOfPage">Go to top</a></p>

</body>
</html>
